{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# LR实现线性预测"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**任务:**\n",
    "\n",
    "基于generated_data.csv数据，建立线性回归模型，预测x=3.5对应的y值，评估模型表现"
   ]
  },
  {
   "cell_type": "raw",
   "metadata": {},
   "source": [
    "@Author  : Flare Zhao\n",
    "@Email: 454209979@qq.com\n",
    "@QQ讨论群：530533630  申请加群的验证信息为订单号（粘贴号码数字即可）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "#load the data\n",
    "import pandas as pd\n",
    "data = pd.read_csv('generated_data.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>x</th>\n",
       "      <th>y</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>9</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>15</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   x   y\n",
       "0  1   7\n",
       "1  2   9\n",
       "2  3  11\n",
       "3  4  13\n",
       "4  5  15"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.head()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0     1\n",
      "1     2\n",
      "2     3\n",
      "3     4\n",
      "4     5\n",
      "5     6\n",
      "6     7\n",
      "7     8\n",
      "8     9\n",
      "9    10\n",
      "Name: x, dtype: int64 0     7\n",
      "1     9\n",
      "2    11\n",
      "3    13\n",
      "4    15\n",
      "5    17\n",
      "6    19\n",
      "7    21\n",
      "8    23\n",
      "9    25\n",
      "Name: y, dtype: int64\n"
     ]
    }
   ],
   "source": [
    "#data赋值\n",
    "x = data.loc[:,'x']\n",
    "y = data.loc[:,'y']\n",
    "print(x,y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1440x1440 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#visualize the data\n",
    "from matplotlib import pyplot as plt\n",
    "plt.figure(figsize=(20,20))\n",
    "plt.scatter(x,y)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "#set up a linear regression model\n",
    "from sklearn.linear_model import LinearRegression\n",
    "lr_model = LinearRegression()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'numpy.ndarray'> (10, 1) <class 'numpy.ndarray'> (10, 1)\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "x = np.array(x)\n",
    "x = x.reshape(-1,1)\n",
    "y = np.array(y)\n",
    "y = y.reshape(-1,1)\n",
    "print(type(x),x.shape,type(y),y.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'numpy.ndarray'> (10, 1)\n"
     ]
    }
   ],
   "source": [
    "print(type(x),x.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None, normalize=False)"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lr_model.fit(x,y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[ 7.]\n",
      " [ 9.]\n",
      " [11.]\n",
      " [13.]\n",
      " [15.]\n",
      " [17.]\n",
      " [19.]\n",
      " [21.]\n",
      " [23.]\n",
      " [25.]]\n"
     ]
    }
   ],
   "source": [
    "y_predict = lr_model.predict(x)\n",
    "print(y_predict)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[12.]]\n"
     ]
    }
   ],
   "source": [
    "y_3 = lr_model.predict([[3.5]])\n",
    "print(y_3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[ 7]\n",
      " [ 9]\n",
      " [11]\n",
      " [13]\n",
      " [15]\n",
      " [17]\n",
      " [19]\n",
      " [21]\n",
      " [23]\n",
      " [25]]\n"
     ]
    }
   ],
   "source": [
    "print(y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[2.]] [5.]\n"
     ]
    }
   ],
   "source": [
    "#a\\b 打印\n",
    "a = lr_model.coef_\n",
    "b = lr_model.intercept_\n",
    "print(a,b)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "3.1554436208840474e-31 1.0\n"
     ]
    }
   ],
   "source": [
    "from sklearn.metrics import mean_squared_error,r2_score\n",
    "MSE = mean_squared_error(y,y_predict)\n",
    "R2 = r2_score(y,y_predict)\n",
    "print(MSE,R2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure()\n",
    "plt.plot(y,y_predict)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**MSE越小越好， R2分数越接近1越好** "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**y’vs y集中度越高越好（越接近直线分布)** "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![MSE](images/MSE.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![R2](images/R2.png)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.10"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
